/**
 * 处理表单默认数据
 * 模板默认数据和后端返回的init数据有冲突
 * 处理逻辑，遍历meta数据，如果有initialvalue，并且后端返回数据为{}，则将该字段替换
 * @param props
 * @param areaCode
 * @param formData
 * @param sourceMeta
 */

function setInitValue(props, areaCode, formData, sourceMeta) {
    if (!areaCode || !formData) return;
    let meta = sourceMeta, areas = [areaCode];
    if (!meta) {
        meta = props.meta.getMeta();
    }
    if (meta.formrelation && meta.formrelation[areaCode]) {
        areas = areas.concat(meta.formrelation[areaCode])
    }
    let allValue = formData.rows[0].values;
    areas.forEach(area => {
        meta[area].items.forEach(item => {
            if (item.initialvalue && !allValue[item.attrcode].hasOwnProperty('value')) {
                formData.rows[0].values[item.attrcode] = item.initialvalue;
            }
        })
    })
}

export default setInitValue;